19 - Virtuelle Maschinen [ID:10993]
50 von 838 angezeigt

happen

Die Technik läuft. Moin moin an der Seite. Die Mannschaft ist überschaubar.

Aber ich kriege immer noch massiv Abgaben, also irgendwie die meisten Leute sind noch dabei.

Gucken sie es anscheinend im Video an und freuen sich darüber, dass da jemand mitfilmt.

Das haben mir Leute gestern, vorgestern von der ersten mal abgegeben und vorvorgestern

waren aber auch schon Leute da mit der zweiten Aufgabe. Ja, also die einen habe ich ein bisschen

geschubst und die anderen, gut, die waren rechtzeitig. Gut, muss ihr dann selber wissen, aber ich kann nur

sagen, die Zeit drängt. Wenn ihr das letztendlich mit MMU und Co. noch machen wollt am Schluss,

dann müsst ihr schon mal was machen. Jo, ok, worum soll es heute gehen? Ja, Fortsetzung von dem

Mittwochtteil. Also bevor ich es vergesse zu sagen, apropos Mittwoch, ihr wisst, nächste Woche

Mittwoch ist nichts. Da sind schon die Semestern, wie heißt das, die vorlesungsfreien Zeiten,

um Weihnachten rum. Uli muss Strom und Wärme und so sparen. Da gehen wir alle in den Urlaub,

Fangsurlaub, hier zwangsweise auch. Ja, muss, fragt nicht keiner. Jo, ok, worum soll es dann

heute gehen? Ja, Fortsetzung von dem von Mittwoch. Mittwoch hatten wir uns überlegt, wir bauen uns

eine sogenannte Paravirtualisierung. Ich komme mal ganz kurz zurück, um wieder rein zu denken.

Also wir haben die typische Abbildung, Hardware, Betriebssystem, auch der Betriebssystem eben eine

Host-Applikation. Und unsere virtuelle Maschine, das ist jetzt letztendlich ein Gastgeberbetriebssystem,

was jetzt nicht wirklich eine Hardware unter sich hat, sondern ein Betriebssystem als Hardware nutzt.

Und on top unserer virtuellen Maschine oder on top von diesem Gastbetriebssystem, da laufen

dann die Gastapplikationen. Gut, wir haben uns schon ein paar Sachen angeguckt. Ein Teil war dieser

M-Map-Unmap-Teil, das wir sagen, wir haben eine Datei als Speicher, Physikartikspeicher und wir haben

jetzt eine CPU, die sich jetzt mit M-Map und M-Unmap Seiten in den Speicher aus der Datei

reinblendet, beziehungsweise die Seiten wieder wegschmeißt. Gut, das Teil haben wir uns angeguckt, hier so

Kontextwechsel heißt viel unmap und map. Da haben wir uns schon überlegt, nicht alles mappen, das dauert viel zu lang.

Zweiter Teil von dem Problem, typischerweise sieht es unter Linux, gilt aber im Prinzip auch für Windows,

BSD, nennen wir andere Betriebssysteme, im Prinzip gilt es überall gleich. Irgendwie habt ihr einen

Adressraum, einen Wirtellen-Adressraum und ein Teil davon ist für den User verfügbar und ein Teil ist einfach Körner.

Das variiert so ein bisschen, also in der 32-Bit, nein, schwarz jetzt, wollen keinen aussperren, die Tür geht bloß mal wieder auf.

Geht nicht wieder auf, ok. Wenn zu, dann gut, passt. Also die Grenze variiert so in der typischen 32-Bit-Welt,

da Linux Kern hat das oberste Gigabyte für den User, sind 3G frei, in der Windows-Welt sind es 2G für den User und 2G für den Körner.

In der 64-Bit-Welt gibt es im Prinzip die Grenze genauso, nur da sind da unter 1TB und da drüber 1TB, da ist das vom Platz her völlig irrelevant.

In 32-Bit ist da, sag ich, ungefähr oberdoppelt so viel Platz, wie man das noch braucht. Könnte man sagen, dass das Gastbetriebssystem in andere Segmente funktioniert?

Du kannst es doch gerne tun, aber auch die Segmente sind natürlich immer nur 4G.

Das Segment heißt ja nur, da ist eine Basisadresse drauf.

Absolut, ja, ich dachte, ich kann mal die Info auflesen, aber ich habe da noch so eine physikalische, die auch auf 22-Bit ist.

Der physikalische ist bei 386 sogar 36-Bit.

Ja, da ist halt noch Platz.

Ja, hilft dir aber nichts. Du hast ja das, worüber ich hier reden will, das ist dein virtuelles Adressraum.

Atemmäßig hast du unendlich viel Platz. Kann ich ja pagen.

Problem ist, in diesem Fall, der virtuelle Adressraum ist bestenkt auf 32-Bit, also 4G.

Und den echten Kern, den brauchst du natürlich, weil sonst keine MAP System Calls machen.

Den User-Bereich kannst du auch nicht wegschmeißen.

Und was wir jetzt eben zusätzlich brauchen, ist natürlich auch noch das Gastbetriebssystem, was ja auch im System-Kontakt ist.

Was wir jetzt eben zusätzlich brauchen, ist natürlich auch noch das Gastbetriebssystem, was du auch nicht raus schmeißen kannst.

Weil wir brauchen natürlich die Applikation auch.

Ja, das dumme...

...dass du wechseln musst, um was du denn machst.

Das könnte ja kürzlich, wenn ich da was machen will, das Haus einfetten und dann wieder ausfetten.

Aber das ist noch teuer, oder?

Das gucken wir uns noch an.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:36:57 Min

Aufnahmedatum

2015-12-18

Hochgeladen am

2019-05-07 05:49:04

Sprache

de-DE

Vorgestellt werden verschiedene Virtualisierungs-Ansätze:

  • Emulation

  • Just-In-Time-Compiler

  • Para-Virtualisierung

  • Bibliotheks-basierte Virtualisierung

  • OS-Virtualisierung

Lernziele und Kompetenzen:

Studierende, die das Modul erfolgreich abgeschlossen haben:

  • erläutern verschiedene Motivationen für den Einsatz von VMs

  • unterscheiden verschiedene VMs

  • klassifizieren verschiedene Ziele unterschiedlicher VMs (z.B. Performance, Konfigurierbarkeit, Genauigkeit, ...)

  • hinterfragen verschiedene Simulationansätze für MMUs

  • erstellen virtuelle Komponenten und Busse

  • strukturieren Callbacks und entsprechendes Forwarding und Caching

  • unterscheiden zwischen Architektur, Chip und Komponente

  • klassifizieren unterschiedliche Just-In-Time-Compiler-Ansätze

  • erzeugen JIT Code aus vorgefertigten Code-Teilen

  • bewerten unterschiedliche JIT-Code-Optimierungen

  • erläutern Probleme bei der JIT-Code-Invalidierung

  • nennen JIT Probleme mit Exceptions/Interrupts sowie berechnete Sprüngen und Return-Instruktionen

  • unterscheiden verschiedene JIT Cache-Verwaltungen

  • beschreiben Möglichkeiten der Fehlerinjektion durch VMs

  • entwickeln ein an JIT angepasstes virtuelles "Hardware"-Design

  • erläutern die Java-VM Instruktionssatz-Architektur

  • nutzen Hardware-basierte Virtualisierung

  • entwickeln Verfahren zum Ausfiltern bestimmter Befehle

  • erläutern Probleme der Speicherverwaltung bei HW-basierter Virtualisierung

  • nutzen User-Mode-Emulation zur Paravirtualisierung

  • diskutieren Möglichkeiten von Debuggern für die Umleitung von System-Calls und die Ausfilterung von Befehlen

  • nutzen einen Hypervisor zur Paravirtualisierung

  • unterscheiden verschiedene Ansätze zur Geräteverwaltung in paravirtualisierten Systemen

  • erläutern Betriebssystem-basierte Virtualisierung

  • entwickeln unterschiedliche Bibliotheks-basierte Virtualisierungen

  • erläutern Probleme beim Speicher-Layout bei Bibliotheks-basierte Virtualisierung

  • konzipieren Personalities für Bibliotheks-basierte Virtualisierungen

  • beurteilen Probleme bei der korrekten Zeit-Simulation

  • nennen Ideen für die dynamische Anpassung der Zeit-Simulation

  • klassifizieren bekannte VMs (z.B. VICE, FAUmachine, QEMU, Bochs, JVM, KVM, User-Mode-Linux, Xen, VServer, Wine)

  • diskutieren in der Gruppe Vor- und Nachteile von bestimmten VM-Ansätzen

  • entwickeln selbst CPU-Emulationen

  • entwickeln selbst Geräte-Emulationen

  • verteilen Implementierungsaufgaben in ihrer Gruppe

Einbetten
Wordpress FAU Plugin
iFrame
Teilen